﻿Imports System.Net.Mail
Imports System.Net.Mime
Imports System.Text.RegularExpressions

Public Class frmSendMail

    Private Attachments As ArrayList
    Private mailMessage As MailMessage
    Private Smtp As SmtpClient

    Private Sub btnAttach_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAttach.Click
        Try
            If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
                Dim arr As String() = OpenFileDialog1.FileNames
                Attachments = New ArrayList()
                txtAttachFile.Clear()
                Attachments.AddRange(arr)
                For Each s As String In Attachments
                    txtAttachFile.Text += s & "; "
                Next
            End If
        Catch ex As Exception
            clscommon.ShowException(ex.Message)
        End Try
    End Sub

    Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
        If vldCheckInput.Validate.IsValid And CheckMail(txtFrom.Text) Then
            mailMessage = New MailMessage()
            mailMessage.Subject = txtSubject.Text
            mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("UTF-8")
            mailMessage.Body = txtContent.Text + vbCr & vbLf & vbCr & vbLf & "--" & vbCr & vbLf & "XHGM User's email: " + txtFrom.Text
            mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("UTF-8")
            mailMessage.From = New MailAddress("XHGM User <ElectricManagementSystem@gmail.com>")
            mailMessage.[To].Add("ThuongNguyenHuy@gmail.com")
            If txtAttachFile.Text <> [String].Empty Then
                For Each attachment As String In Attachments
                    Dim attached As New Attachment(attachment, MediaTypeNames.Application.Octet)
                    mailMessage.Attachments.Add(attached)
                Next
            End If
            Smtp = New SmtpClient()
            Smtp.Host = "smtp.gmail.com"
            Smtp.EnableSsl = True
            Smtp.Credentials = New System.Net.NetworkCredential("ElectricManagementSystem", "canhdieutinhyeu")
            Smtp.Send(mailMessage)
            clsCommon.ShowInformation("Thư của bạn đã được gửi tới cho tác giả của chương trình là Nguyễn Huy Thường." & vbCr & vbLf & "Bạn sẽ nhận được thư trả lời của tác giả trong thời gian sớm nhất có thể." & vbCr & vbLf & "Bạn hãy thường xuyên kiểm tra hộp thư đến trong hòm thư của mình." & vbCr & vbLf & "Cảm ơn bạn đã sử dụng chương trình XHGM.")
        End If
    End Sub

    Private Sub frmSendMail_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
        txtFrom.Focus()
    End Sub

    Public Function CheckMail(ByVal Email As String) As Boolean
        Dim result As Boolean = Email Like "*@[A-Z,a-z,0-9]*.*"
        If Not result Then
            clscommon.ShowException("Email không hợp lệ!")
            txtFrom.Focus()
        End If
        Return result
    End Function
End Class